Emberveil sourcegame/2006Scape Server/src/main/java/org/apollo/util/security/PlayerCredentials.java
package org.apollo.util.security;
import org.apollo.util.NameUtil;
/**
* Holds the credentials for a player.
*
* @author Graham
*/
public final class PlayerCredentials {
/**
* The player's username encoded as a long.
*/
private final long encodedUsername;
/**
* The player's password.
*/
private String password;
/**
* The computer's unique identifier.
*/
private final int uid;
/**
* The player's username.
*/
private final String username;
/**
* The hash of the player's username.
*/
private final int usernameHash;
/**
* The Player's host address, represented as a String.
*/
private final String hostAddress;
/**
* Creates a new {@link PlayerCredentials} object with the specified name, password and uid.
*
* @param username The player's username.
* @param password The player's password.
* @param usernameHash The hash of the player's username.
* @param uid The computer's uid.
* @param hostAddress The Player's connecting host address.
*/
public PlayerCredentials(String username, String password, int usernameHash, int uid, String hostAddress) {
this.username = username;
encodedUsername = NameUtil.encodeBase37(username);
this.password = password;
this.usernameHash = usernameHash;
this.uid = uid;
this.hostAddress = hostAddress;
}
/**
* Gets the player's username encoded as a long.
*
* @return The username as encoded by {@link NameUtil#encodeBase37(String)}.
*/
public long getEncodedUsername() {
return encodedUsername;
}
/**
* Sets the player's password
*
* @param password The player's new password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* Gets the player's password.
*
* @return The player's password.
*/
public String getPassword() {
return password;
}
/**
* Gets the computer's uid.
*
* @return The computer's uid.
*/
public int getUid() {
return uid;
}
/**
* Gets the player's username.
*
* @return The player's username.
*/
public String getUsername() {
return username;
}
/**
* Gets the username hash.
*
* @return The username hash.
*/
public int getUsernameHash() {
return usernameHash;
}
/**
* Gets the Player's connecting host address.
*
* @return The Player's host address, represented as a String.
*/
public String getHostAddress() {
return hostAddress;
}
@Override
public int hashCode() {
return Long.hashCode(encodedUsername);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof PlayerCredentials) {
PlayerCredentials other = (PlayerCredentials) obj;
return encodedUsername == other.encodedUsername;
}
return false;
}
}